import 'dart:io';
import 'package:path/path.dart' as p;

/// 返回 `<sdk>/lib` 目录下的所有子目录名称（按字母顺序排序）。
///
/// - [sdkDir] SDK 根目录路径。
/// - 如果 `<sdk>/lib` 不存在，则返回空列表。
/// - 仅返回一级子目录的目录名（不包含完整路径）。
/// - 排序规则为不区分大小写的字母序。
///
/// 示例：
/// ```dart
/// final subdirs = await listLibSubfolders('/path/to/sdk');
/// print(subdirs); // ['analysis', 'core', 'utils']
/// ```
Future<List<String>> listLibSubfolders(String sdkDir) async {
  final libDir = Directory(p.join(sdkDir, 'lib'));
  if (!await libDir.exists()) return [];

  final entries = await libDir.list().toList();
  final dirs = entries
      .whereType<Directory>()
      .map((d) => p.basename(d.path))
      .toList();

  dirs.sort((a, b) => a.toLowerCase().compareTo(b.toLowerCase()));
  return dirs;
}
